#include "core/acs_request.h"
#include "core/auth/i_signer.h"
#include "core/auth/credential.h"

namespace aliyun {

AcsRequest::AcsRequest(const string& product, const string& version, const string& action)
  : product_(product), version_(version), action_(action) {
  headers_.insert(std::make_pair("x-sdk-client", "cpp/2.0.0"));
  protocol_ = "http";
}

AcsRequest::~AcsRequest() {
}

const string& AcsRequest::GetVersion(void) const {
  return version_;
}
void AcsRequest::SetVersion(const string& version) {
  version_ = version;
}

const string& AcsRequest::GetProduct(void) const {
  return product_;
}
void AcsRequest::SetProduct(const string& product) {
  product_ = product;
}

const string& AcsRequest::GetAction(void) const {
  return action_;
}
void AcsRequest::SetAction(const string& action) {
  action_ = action;
}

const string& AcsRequest::GetAcceptFormat(void) const {
  return accept_format_;
}
void AcsRequest::SetAcceptFormat(const string& accept_format) {
  accept_format_ = accept_format;
}

const string& AcsRequest::GetMethod(void) const {
  return method_;
}
void AcsRequest::SetMethod(const string& method) {
  method_ = method;
}

const string& AcsRequest::GetProtocol(void) const {
  return protocol_;
}
void AcsRequest::SetProtocol(const string& protocol) {
  protocol_ = protocol;
}

const string& AcsRequest::GetRegionId(void) const {
  return region_id_;
}
void AcsRequest::SetRegionId(const string& region_id) {
  region_id_ = region_id;
}

const std::map<string, string>& AcsRequest::GetQueryParameters(void) {
  return query_parameters_;
}
void AcsRequest::PutQueryParameter(const string& key, const string& value) {
  query_parameters_[key] = value;
}

// public
const std::map<string, string>& AcsRequest::GetHeaders(void) const {
  return headers_;
}


} // namespace aliyun {

// end of file
